﻿Public Partial Class Wfrm_Paso5
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            llena_combo()
            txtRut.Attributes.Add("onkeypress", "javascript:return ValidNum(event);")
            txtCelular.Attributes.Add("onkeypress", "javascript:return ValidNum(event);")
            ViewState("rut") = Session("rut_usuario") 'rut recibido desde seleccion de paciente
            Botoneras()
            btnGrabar.Enabled = False
            btnGrabar.UpdateAfterCallBack = True

        End If

    End Sub

    Sub Botoneras()
        cmbComuna.Enabled = False
        cmbComuna.UpdateAfterCallBack = True
        cmbIsapre.Enabled = False
        cmbIsapre.UpdateAfterCallBack = True
        txtNombres.ReadOnly = True
        txtApaterno.ReadOnly = True
        txtAmaterno.ReadOnly = True
        txt_fonofijo.ReadOnly = True
        cmb_Sexo.Enabled = False
        txtCelular.ReadOnly = True
        txtMail.ReadOnly = True
        btnGrabar.Enabled = False
        txtNombres.Text = Nothing
        txtApaterno.Text = Nothing
        txtAmaterno.Text = Nothing
        'txtFechaNac.Text = Nothing
        cmb_Sexo.Text = Nothing
        txtCelular.Text = Nothing
        txtMail.Text = Nothing
        txtRut.Text = Nothing
        txtDV.Text = Nothing
        cmbRegion.Enabled = False

        txt_fonofijo.UpdateAfterCallBack = True
        cmbRegion.UpdateAfterCallBack = True
        txtNombres.UpdateAfterCallBack = True
        txtApaterno.UpdateAfterCallBack = True
        txtAmaterno.UpdateAfterCallBack = True
        'txtFechaNac.UpdateAfterCallBack = True
        cmb_Sexo.UpdateAfterCallBack = True
        txtCelular.UpdateAfterCallBack = True
        txtMail.UpdateAfterCallBack = True
        btnGrabar.UpdateAfterCallBack = True
        txtRut.UpdateAfterCallBack = True
        txtDV.UpdateAfterCallBack = True
    End Sub
    Sub Botoneras2()
        txtNombres.ReadOnly = True
        txtApaterno.ReadOnly = True
        txtAmaterno.ReadOnly = True
        'txtFechaNac.ReadOnly = True
        cmb_Sexo.Enabled = False
        txtCelular.ReadOnly = True
        txtMail.ReadOnly = True
        btnGrabar.Enabled = False
        txtNombres.Text = Nothing
        txtApaterno.Text = Nothing
        txtAmaterno.Text = Nothing
        'txtFechaNac.Text = Nothing
        cmb_Sexo.Text = Nothing
        txtCelular.Text = Nothing
        txtMail.Text = Nothing
        'txtRut.Text = Nothing
        'txtDV.Text = Nothing

        txtNombres.UpdateAfterCallBack = True
        txtApaterno.UpdateAfterCallBack = True
        txtAmaterno.UpdateAfterCallBack = True
        'txtFechaNac.UpdateAfterCallBack = True
        cmb_Sexo.UpdateAfterCallBack = True
        txtCelular.UpdateAfterCallBack = True
        txtMail.UpdateAfterCallBack = True
        btnGrabar.UpdateAfterCallBack = True
        txtRut.UpdateAfterCallBack = True
        txtDV.UpdateAfterCallBack = True
    End Sub
    Protected Sub txtDV_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txtDV.TextChanged
        Try
            Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
            Dim rp As New DotNetResponse.SQLPersistence

            If txtRut.Text = "" Then
                txtDV.Text = Nothing
                txtDV.UpdateAfterCallBack = True
                Exit Sub
            End If
            rp.ClearParametro()
            rp.TieneDatos = False
            rp.StoredProcedure = "SP_AME_GET_PACIENTE"
            rp.AddParametro(txtRut.Text & txtDV.Text)

            exec.ExecuteDataTable(rp)

            Session("pac_rut") = txtRut.Text
            If txtRut.Text.Length < "8" Then
                txtRut.Text = "0" & txtRut.Text
                txtRut.UpdateAfterCallBack = True
            End If

            If rp.TieneDatos Then
                lbl_mensaje.Text = Nothing
                lbl_mensaje.UpdateAfterCallBack = True
                pnl_mensaje.Visible = False
                pnl_mensaje.UpdateAfterCallBack = True
                txtNombres.Text = rp.DtTable.Rows(0).Item(2).ToString
                txtApaterno.Text = rp.DtTable.Rows(0).Item(3).ToString
                txtAmaterno.Text = rp.DtTable.Rows(0).Item(4).ToString
                datepicker.Text = Convert.ToDateTime(rp.DtTable.Rows(0).Item(5).ToString).ToString("dd/MM/yyyy")
                cmb_Sexo.SelectedItem.Text = rp.DtTable.Rows(0).Item(6).ToString
                txtCelular.Text = rp.DtTable.Rows(0).Item(8).ToString
                txtMail.Text = rp.DtTable.Rows(0).Item(9).ToString
                cmbComuna.SelectedValue = rp.DtTable.Rows(0).Item(11).ToString
                cmbIsapre.SelectedValue = rp.DtTable.Rows(0).Item(10).ToString
                cmbRegion.SelectedValue = rp.DtTable.Rows(0).Item(12).ToString
                txt_fonofijo.Text = rp.DtTable.Rows(0).Item(13).ToString

                txt_fonofijo.UpdateAfterCallBack = True
                datepicker.UpdateAfterCallBack = True
                cmbRegion.UpdateAfterCallBack = True
                btnGrabar.Enabled = True
                txtNombres.UpdateAfterCallBack = True
                txtApaterno.UpdateAfterCallBack = True
                txtAmaterno.UpdateAfterCallBack = True
                cmb_Sexo.UpdateAfterCallBack = True
                txtCelular.UpdateAfterCallBack = True
                txtMail.UpdateAfterCallBack = True
                btnGrabar.UpdateAfterCallBack = True
                cmbComuna.UpdateAfterCallBack = True
                cmbIsapre.UpdateAfterCallBack = True
                txtRut.ReadOnly = True
                txtDV.ReadOnly = True
                datepicker.ReadOnly = True

                txtRut.UpdateAfterCallBack = True
                txtDV.UpdateAfterCallBack = True
                datepicker.UpdateAfterCallBack = True
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                lbl_mensaje.Text = "Paciente Registrado,haga click en Continuar para agregarlo a su lista"
                lbl_mensaje.UpdateAfterCallBack = True
            Else
                ValidaRut(txtRut.Text)
                If Session("Rut_Pac") = txtRut.Text & "-" & txtDV.Text Then
                    cmbComuna.Enabled = True
                    cmbComuna.UpdateAfterCallBack = True
                    cmbIsapre.Enabled = True
                    cmbIsapre.UpdateAfterCallBack = True
                    txtRut.ReadOnly = True
                    txtDV.ReadOnly = True
                    lbl_mensaje.Text = Nothing
                    lbl_mensaje.UpdateAfterCallBack = True
                    pnl_mensaje.Visible = False
                    pnl_mensaje.UpdateAfterCallBack = True
                    txtNombres.Text = Nothing
                    txtApaterno.Text = Nothing
                    txtAmaterno.Text = Nothing
                    cmb_Sexo.Text = Nothing
                    txtCelular.Text = Nothing
                    txtMail.Text = Nothing
                    txtNombres.ReadOnly = False
                    txtApaterno.ReadOnly = False
                    txtAmaterno.ReadOnly = False
                    txt_fonofijo.ReadOnly = False


                    cmb_Sexo.Enabled = True
                    txtCelular.ReadOnly = False
                    txtMail.ReadOnly = False
                    btnGrabar.Enabled = True
                    cmbRegion.Enabled = True
                    txt_fonofijo.UpdateAfterCallBack = True
                    cmbRegion.UpdateAfterCallBack = True
                    lbl_mensaje.UpdateAfterCallBack = True
                    txtNombres.UpdateAfterCallBack = True
                    txtApaterno.UpdateAfterCallBack = True
                    txtAmaterno.UpdateAfterCallBack = True
                    cmb_Sexo.UpdateAfterCallBack = True
                    txtCelular.UpdateAfterCallBack = True
                    txtMail.UpdateAfterCallBack = True
                    btnGrabar.UpdateAfterCallBack = True
                    txtRut.UpdateAfterCallBack = True
                    txtDV.UpdateAfterCallBack = True

                    lbl_mensaje.Text = Nothing
                    pnl_mensaje.Visible = False

                    lbl_mensaje.UpdateAfterCallBack = True
                    pnl_mensaje.UpdateAfterCallBack = True

                    Anthem.Manager.AddScriptForClientSideEval("document.getElementById('" & txtNombres.ClientID & "').focus();")
                Else

                    lbl_mensaje.Text = "El Rut Ingresado No Es Valido"
                    pnl_mensaje.Visible = True
                    lbl_mensaje.UpdateAfterCallBack = True
                    pnl_mensaje.UpdateAfterCallBack = True
                    txtDV.Text = Nothing
                    txtDV.UpdateAfterCallBack = True
                    Botoneras2()
                End If
            End If

            If rp.Errores Then
                rp.MensajeError.ToString()
            End If
        Catch ex As Exception
            lbl_mensaje.Text = "Rut inválido"
            pnl_mensaje.Visible = True
            lbl_mensaje.UpdateAfterCallBack = True
            pnl_mensaje.UpdateAfterCallBack = True
            txtDV = Nothing
            Anthem.Manager.AddScriptForClientSideEval("document.getElementById('" & txtRut.ClientID & "').focus();")

        End Try
    End Sub
    Public Function ValidaRut(ByVal ElNumero As String) As String

        Try


            Dim Resultado As String = ""
            Dim Multiplicador As Integer = 2
            Dim iNum As Integer = 0
            Dim Suma As Integer = 0
            Dim rut

            For i As Integer = 8 To 1 Step -1
                iNum = Mid(ElNumero, i, 1)
                Suma += iNum * Multiplicador
                Multiplicador += 1
                If Multiplicador = 8 Then Multiplicador = 2
            Next
            Resultado = CStr(11 - (Suma Mod 11))
            If Resultado = "10" Then Resultado = "K"
            If Resultado = "11" Then Resultado = "0"

            rut = ElNumero & "-" & Resultado
            Session("Rut_Pac") = rut
            Return ElNumero & "-" & Resultado
        Catch ex As Exception
            lbl_mensaje.Text = "Rut inválido"
            pnl_mensaje.Visible = True
            lbl_mensaje.UpdateAfterCallBack = True
            pnl_mensaje.UpdateAfterCallBack = True
            txtDV = Nothing
            Anthem.Manager.AddScriptForClientSideEval("document.getElementById('" & txtRut.ClientID & "').focus();")
            txtDV.UpdateAfterCallBack = True
            Exit Function
        End Try
    End Function
    Sub mail()
        'COMO EL EMAIL ES OPCIONAL, SI NO HAY TEXTO EN EL CAMPO NO HACE NADA
        If txtMail.Text <> "" Then
            Dim partes, parte, letra
            Dim i As Integer
            Dim bandera3
            partes = Split(txtMail.Text, "@")
            If UBound(partes) <> 1 Then
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                lbl_mensaje.Text = "Formato Incorrecto, Ejemplo: paciente@clinicalaslilas.cl"
                lbl_mensaje.UpdateAfterCallBack = True
                bandera3 = 0
                Session("mail") = "2"
                Exit Sub
            Else
                For Each parte In partes
                    bandera3 = 1
                    For i = 1 To Len(parte)
                        letra = LCase(Mid(parte, i, 1))
                        If InStr("._-abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", letra) <= 0 Then
                            pnl_mensaje.Visible = True
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = "NO SE ACEPTA EL USO DE CARACTERES ESPECIALES COMO ñ,&,*,+,/,%,$"
                            lbl_mensaje.UpdateAfterCallBack = True
                            bandera3 = 0
                            Session("mail") = "2"
                            Exit Sub
                            Exit For
                        Else
                            If lbl_mensaje.Text = "" Then
                                pnl_mensaje.Visible = False
                                pnl_mensaje.UpdateAfterCallBack = True
                                lbl_mensaje.Text = ""
                                lbl_mensaje.UpdateAfterCallBack = True
                            End If
                        End If
                    Next i
                    'si la parte actual acaba o empieza en punto la dirección no es válida 
                    If Left(parte, 1) = "." Or Right(parte, 1) = "." Then
                        pnl_mensaje.Visible = True
                        pnl_mensaje.UpdateAfterCallBack = True
                        lbl_mensaje.Text = "Sintaxis de Correo Incorrecta, Verifique Simbolo ''.''"
                        lbl_mensaje.UpdateAfterCallBack = True
                        Session("mail") = "2"
                        bandera3 = 0
                        Exit Sub
                    Else
                        If lbl_mensaje.Text = "" Then
                            pnl_mensaje.Visible = False
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = ""
                            lbl_mensaje.UpdateAfterCallBack = True
                        End If
                    End If
                    If bandera3 = 0 Then
                        Exit For
                    End If
                Next parte
                'va.lidar la segunda mitad donde hay el . mas 2 o 3 caracteres
                'si en la segunda mitad no existe un punto
                If Not bandera3 = 0 Then
                    If InStr(partes(1), ".") <= 0 Then
                        pnl_mensaje.Visible = True
                        pnl_mensaje.UpdateAfterCallBack = True
                        lbl_mensaje.Text = "Formato Incorrecto, Ejemplo: paciente@clinicalaslilas.cl"
                        lbl_mensaje.UpdateAfterCallBack = True
                        bandera3 = 0
                        Session("mail") = "2"
                        Exit Sub
                    Else
                        If lbl_mensaje.Text = "" Then
                            pnl_mensaje.Visible = False
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = ""
                            lbl_mensaje.UpdateAfterCallBack = True
                        End If
                    End If

                    i = Len(partes(1)) - InStrRev(partes(1), ".")
                    'si el número de caracteres despues del punto es distinto de 2 y 3 

                    If Not (i = 2 Or i = 3) Then
                        pnl_mensaje.Visible = True
                        pnl_mensaje.UpdateAfterCallBack = True
                        lbl_mensaje.Text = "Formato Incorrecto, Ejemplo: paciente@clinicalaslilas.cl"
                        lbl_mensaje.UpdateAfterCallBack = True
                        bandera3 = 0
                        Session("mail") = "2"
                        Exit Sub
                    Else
                        'si encuentra dos puntos seguidos
                        If InStr(txtMail.Text, "..") > 0 Then
                            pnl_mensaje.Visible = True
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = "Formato Incorrecto, Ejemplo: paciente@clinicalaslilas.cl"
                            lbl_mensaje.UpdateAfterCallBack = True
                            bandera3 = 0
                            Session("mail") = "2"
                            Exit Sub
                        Else
                            pnl_mensaje.Visible = False
                            pnl_mensaje.UpdateAfterCallBack = True
                            lbl_mensaje.Text = ""
                            lbl_mensaje.UpdateAfterCallBack = True
                        End If
                    End If
                End If

            End If
            'lblerroremail.Text = "FORMATO PARA EMAIL INCORRECTO, ASEGURESE QUE SEA COMO EL EJEMPLO: email@dominio.pop"
        Else
            'si no hay texto encendemos la bandera
            Dim bandera3
            bandera3 = 1
        End If
        Session("mail") = Nothing



    End Sub

    Sub valida_datos()

        If txtRut.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Rut"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txtDV.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo DV"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txtNombres.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Nombres"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txtApaterno.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Apellido Paterno"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txtAmaterno.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Apellido Materno"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If cmb_Sexo.SelectedValue = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Sexo"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If txtCelular.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Celular"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        If datepicker.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Fecha Nacimiento"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        'Dim mail_final As String = txt_email1.Text & txt_email11.Text
        If txtMail.Text = "" Then
            pnl_mensaje.Visible = True
            lbl_mensaje.Text = "Completar Campo Mail"
            pnl_mensaje.UpdateAfterCallBack = True
            lbl_mensaje.UpdateAfterCallBack = True
            Dim valor As String
            valor = "1"
            Session("valor") = valor
            Exit Sub
        End If

        'Dim mail_final2 As String = txt_email12.Text & txt_email13.Text
        'If mail_final2 = "" Then
        '    pnl_mensaje.Visible = True
        '    lbl_mensaje.Text = "Completar Campo Mail"
        '    pnl_mensaje.UpdateAfterCallBack = True
        '    lbl_mensaje.UpdateAfterCallBack = True
        '    Dim valor As String
        '    valor = "1"
        '    Session("valor") = valor
        '    Exit Sub
        'End If

        pnl_mensaje.Visible = False
        lbl_mensaje.Text = Nothing
        pnl_mensaje.UpdateAfterCallBack = True
        lbl_mensaje.UpdateAfterCallBack = True
        Session("valor") = Nothing

    End Sub
    Sub llena_combo()
        Dim exec As New DotNetDal.SQLPersistence(False, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        rp.StoredProcedure = "SP_AME_GET_ISAPRE"
        exec.ExecuteDataTable(rp)
        If rp.TieneDatos Then
            cmbIsapre.DataTextField = "nombre"
            cmbIsapre.DataValueField = "codigo"
            cmbIsapre.DataSource = rp.DtTable
            cmbIsapre.UpdateAfterCallBack = True
            Me.cmbIsapre.DataBind()
        End If
        If rp.Errores Then
            'envío mensaje de error
        End If

        rp.ClearParametro()
        rp.TieneDatos = False
        rp.StoredProcedure = "SP_AME_GET_COMUNA"
        exec.ExecuteDataTable(rp)
        If rp.TieneDatos Then
            cmbComuna.DataTextField = "nombre"
            cmbComuna.DataValueField = "codigo"
            cmbComuna.DataSource = rp.DtTable
            cmbComuna.UpdateAfterCallBack = True
            Me.cmbComuna.DataBind()
        End If
        If rp.Errores Then
            'envío mensaje de error
        End If

        rp.ClearParametro()
        rp.TieneDatos = False
        rp.StoredProcedure = "SP_AME_GET_REGION"
        exec.ExecuteDataTable(rp)
        If rp.TieneDatos Then
            cmbRegion.DataTextField = "nombre"
            cmbRegion.DataValueField = "codigo"
            cmbRegion.DataSource = rp.DtTable
            cmbRegion.UpdateAfterCallBack = True
            Me.cmbRegion.DataBind()
        End If
        If rp.Errores Then
            'envío mensaje de error
        End If
    End Sub
    Protected Sub btnGrabar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnGrabar.Click
        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        If txtRut.Text.Substring(0, 1) = "0" Then
            txtRut.Text = txtRut.Text.Substring(1, 7)
        End If

        rp.StoredProcedure = "SP_AME_GET_PACIENTE"
        rp.AddParametro(Session("pac_rut") & txtDV.Text)

        exec.ExecuteDataTable(rp)

        If Session("pac_rut").ToString.Substring(0, 1) = "0" Then

        End If
        If rp.TieneDatos Then
            rp.ClearParametro()
            rp.TieneDatos = False

            rp.StoredProcedure = "SP_AME_INSERT_USUARIO_USUPAC"
            rp.AddParametro(ViewState("rut"))
            rp.AddParametro(Session("pac_rut") & txtDV.Text)
            exec.ExecuteNonQuery(rp)
            exec.Commit()
            If rp.Errores Then

            End If
            Response.Redirect("Wfrm_Paso5.0.aspx", True)
            Exit Sub
        Else
            valida_datos()
            If Session("valor") = "1" Then
                Exit Sub
            End If

            mail()
            If Session("mail") = "2" Then
                Exit Sub
            End If
            rp.ClearParametro()
            rp.TieneDatos = False
            rp.StoredProcedure = "SP_AME_INSERT_PACIENTE"
            rp.AddParametro(txtRut.Text & txtDV.Text)
            rp.AddParametro(txtNombres.Text)
            rp.AddParametro(txtApaterno.Text)
            rp.AddParametro(txtAmaterno.Text)
            rp.AddParametro(datepicker.Text)
            rp.AddParametro(Me.cmb_Sexo.SelectedValue)
            rp.AddParametro(txtCelular.Text)
            rp.AddParametro(txtMail.Text)
            rp.AddParametro(ViewState("rut"))
            rp.AddParametro(cmbIsapre.SelectedValue)
            rp.AddParametro(cmbComuna.SelectedValue)
            rp.AddParametro(txt_fonofijo.Text)

            exec.ExecuteNonQuery(rp) 'Ejecuta
            exec.Commit()

            If rp.Errores Then
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                lbl_mensaje.Text = "Ocurrio un Error al Guardar sus Datos"
                lbl_mensaje.UpdateAfterCallBack = True
                Exit Sub
            Else
                Session("familiar") = "familiar"
                Response.Redirect("Wfrm_paso5.0.aspx", True)
            End If

            

        End If



    End Sub

    Protected Sub btnGrabar0_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnGrabar0.Click
        Session("familiar") = "familiar"
        Response.Redirect("Wfrm_paso5.0.aspx", True)
    End Sub

    Protected Sub cmbRegion_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cmbRegion.SelectedIndexChanged
        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence

        rp.ClearParametro()
        rp.TieneDatos = False
        rp.StoredProcedure = "SP_AME_GET_COMUNA_region"
        rp.AddParametro(cmbRegion.SelectedValue)
        exec.ExecuteDataTable(rp)
        If rp.TieneDatos Then
            cmbComuna.DataTextField = "nombre"
            cmbComuna.DataValueField = "codigo"
            cmbComuna.DataSource = rp.DtTable
            cmbComuna.UpdateAfterCallBack = True
            Me.cmbComuna.DataBind()
        End If
        If rp.Errores Then
            'envío mensaje de error
        End If

    End Sub
End Class